TestNG এর আপডেট এবং নতুন ফিচারের উদাহরণ

TestNG এর ভবিষ্যৎ এবং নতুন ফিচার - টেস্টএনজি (TestNG) - Java Technologies

433

TestNG একটি ক্রমাগত উন্নয়নশীল টেস্টিং ফ্রেমওয়ার্ক, যা প্রতি নতুন আপডেটে নতুন ফিচার, বাগ ফিক্স এবং পারফরম্যান্স উন্নয়ন নিয়ে আসে। এই ফ্রেমওয়ার্কের নতুন সংস্করণগুলি টেস্টিং প্রক্রিয়াকে আরও উন্নত, সাশ্রয়ী এবং কার্যকরী করে তোলে। TestNG এর আপডেটগুলোর মধ্যে নতুন ফিচার যোগ করা, পুরানো ফিচারগুলোর উন্নয়ন করা এবং বিভিন্ন সমস্যা সমাধান করা অন্তর্ভুক্ত।

TestNG এর বিভিন্ন নতুন আপডেটের মধ্যে কিছু উল্লেখযোগ্য ফিচার নিচে আলোচনা করা হলো:


১. Parallel Execution - সমান্তরাল (Parallel) টেস্টিং

TestNG 7.x সংস্করণে parallel execution ফিচারটি আরও উন্নত করা হয়েছে। এটি এখন একাধিক টেস্ট কেস বা ক্লাসকে একযোগভাবে চালাতে সহায়তা করে, ফলে টেস্ট রানিং এর সময় অনেক কমে যায়।

XML কনফিগারেশন উদাহরণ:

<suite name="Parallel Suite" parallel="tests" thread-count="2">
    <test name="Test1">
        <classes>
            <class name="TestClass1" />
        </classes>
    </test>
    <test name="Test2">
        <classes>
            <class name="TestClass2" />
        </classes>
    </test>
</suite>

এখানে parallel="tests" দিয়ে দুইটি টেস্ট একসাথে চলবে, এবং thread-count="2" দিয়ে দুটি থ্রেডের মাধ্যমে টেস্ট চালানোর ব্যবস্থা করা হয়েছে।


২. TimeOut এর সাথে টেস্ট

TestNG 7.0 সংস্করণে timeOut প্রপার্টি আরও কার্যকরী হয়ে উঠেছে, যেখানে কোনো টেস্ট নির্দিষ্ট সময়ের মধ্যে শেষ না হলে সেটি স্বয়ংক্রিয়ভাবে ব্যর্থ হয়ে যাবে। এটি বড় বা লম্বা টেস্ট রানগুলোর জন্য একটি কার্যকরী পদ্ধতি।

টেস্টে TimeOut ব্যবহার:

import org.testng.annotations.Test;

public class TestClass {
    
    @Test(timeOut = 1000)
    public void testMethod() throws InterruptedException {
        // কিছু লম্বা প্রসেস
        Thread.sleep(2000);  // এটি টেস্টকে ব্যর্থ করবে
    }
}

এখানে timeOut সেট করা হয়েছে 1000 মিলিসেকেন্ড (1 সেকেন্ড)। যদি টেস্ট 1 সেকেন্ডের মধ্যে শেষ না হয়, তাহলে এটি স্বয়ংক্রিয়ভাবে ব্যর্থ হবে।


৩. New Assertion Methods

TestNG 7.0 সংস্করণে নতুন কিছু assertion methods যোগ করা হয়েছে যা টেস্ট ফলাফল যাচাই করার প্রক্রিয়াটি আরও উন্নত করেছে। এর মধ্যে বিশেষভাবে assertTrue এবং assertFalse মেথডগুলোতে উন্নতি হয়েছে।

উদাহরণ:

import org.testng.Assert;
import org.testng.annotations.Test;

public class TestClass {
    
    @Test
    public void testAssertions() {
        Assert.assertTrue(5 > 3, "এটি সঠিক নয়!");
        Assert.assertFalse(2 > 3, "এটি সঠিক নয়!");
    }
}

এখন TestNG আরও সঠিক এবং পরিষ্কার ত্রুটি বার্তা প্রদানের জন্য উন্নত assertion methods প্রদান করে।


৪. InvocationCount এবং InvocationTime

TestNG 7.0 সংস্করণে InvocationCount এবং InvocationTime এর মাধ্যমে আপনি নির্দিষ্ট টেস্ট একাধিকবার চালানোর জন্য কাস্টমাইজড পদ্ধতি ব্যবহার করতে পারেন।

  • InvocationCount: নির্দিষ্ট সংখ্যক বার টেস্টটি চালানোর জন্য ব্যবহার হয়।
  • InvocationTime: টেস্টটির চালানোর সময়সীমা নির্ধারণ করতে সাহায্য করে।

উদাহরণ:

import org.testng.annotations.Test;

public class TestClass {
    
    @Test(invocationCount = 5)
    public void testMethod() {
        System.out.println("টেস্ট চালানো হচ্ছে");
    }
}

এখানে invocationCount = 5 দিয়ে টেস্টটি ৫ বার চালানো হবে।


৫. Improved Dependency Management

TestNG 7.0 সংস্করণে টেস্টের মধ্যে dependency management আরও শক্তিশালী করা হয়েছে। আপনি নির্দিষ্ট টেস্টের ওপর নির্ভরশীল অন্য টেস্ট চালাতে পারেন এবং টেস্টের ফলাফলের ভিত্তিতে নির্ভরশীলতা স্থাপন করতে পারেন।

উদাহরণ:

import org.testng.annotations.Test;

public class TestClass {

    @Test
    public void testMethod1() {
        System.out.println("টেস্ট ১ চালানো হচ্ছে");
    }

    @Test(dependsOnMethods = {"testMethod1"})
    public void testMethod2() {
        System.out.println("টেস্ট ২ চালানো হচ্ছে");
    }
}

এখানে testMethod2 শুধুমাত্র তখনই চলবে যখন testMethod1 সফলভাবে চলবে।


৬. Improved Reporting

TestNG রিপোর্টিং সিস্টেমেও অনেক উন্নতি হয়েছে, যা টেস্টের ফলাফলকে আরও বিস্তারিত এবং গ্রাফিক্যালভাবে উপস্থাপন করতে সক্ষম। এর মধ্যে HTML Reporter, JUnit XML ফরম্যাট, এবং Allure Integration অন্তর্ভুক্ত।


৭. @BeforeGroups এবং @AfterGroups

TestNG 7.0 এ নতুন @BeforeGroups এবং @AfterGroups অ্যানোটেশনগুলো টেস্ট গ্রুপের পূর্বে এবং পরে রান করার জন্য ব্যবহৃত হয়। এটি গ্রুপ ভিত্তিক টেস্টিংয়ে অনেক উপকারী।

উদাহরণ:

import org.testng.annotations.BeforeGroups;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.Test;

public class TestClass {
    
    @BeforeGroups("group1")
    public void setUp() {
        System.out.println("গ্রুপ ১ এর জন্য সেটআপ");
    }

    @Test(groups = "group1")
    public void testMethod() {
        System.out.println("গ্রুপ ১ এর টেস্ট");
    }

    @AfterGroups("group1")
    public void tearDown() {
        System.out.println("গ্রুপ ১ এর জন্য টিয়ারডাউন");
    }
}

এখানে @BeforeGroups এবং @AfterGroups ব্যবহৃত হয়েছে টেস্ট গ্রুপের আগে এবং পরে কিছু কার্যকলাপ পরিচালনা করার জন্য।


সারাংশ

TestNG এর সাম্প্রতিক আপডেটগুলোর মধ্যে নতুন ফিচার এবং উন্নত পারফরম্যান্স ব্যবহারের জন্য বেশ কিছু নতুন টুলস ও পদ্ধতি অন্তর্ভুক্ত করা হয়েছে। এর মধ্যে parallel execution, retry logic, dependency management, improved reporting, এবং @BeforeGroups/AfterGroups এর মতো উন্নয়নগুলি টেস্টিং প্রক্রিয়াকে আরও শক্তিশালী এবং কার্যকরী করে তুলেছে। TestNG এর এই আপডেটগুলো টেস্ট পরিচালনাকে আরও দ্রুত, সহজ এবং দক্ষ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...